<!-- 巡更点弹窗 -->

<template>
  <EasyModal v-model="model" title="巡更点详情" small bgClose noConfirm>
    <ParamTab :param="point_param" :dict="DICT.POINT_TAB" class="marginBottom" />

    <div v-if="point_infoVisible" class="marginBottom">
      <MyBase v-show="point_param.tab === DICT.POINT_TAB[0][0]" />
      <MyRecord v-show="point_param.tab === DICT.POINT_TAB[1][0]" />
    </div>
  </EasyModal>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'PointModal',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixWeb(), CORE.mixInfo('point', 'point_'), CORE.mixList('point', 'point_')],

  /**
   * 组件导入 (Abc.vue + Abc/index.vue)
   */
  ...CORE.components(require.context('./', true, /vue$/)),

  /**
   * 计算属性 (慎用箭头函数)
   */
  computed: {
    /**
     * 显示弹窗 (双向绑定)
     */
    model: {
      get() {
        return this.point_infoVisible
      },
      set() {
        this.point_closeInfo()
        this.point_setParam()
      },
    },
  },

  /**
   * 监听属性 (深度 deep 首次 immediate)
   */
  watch: {
    /**
     * 监听信息就绪
     */
    point_readyInfo(ready) {
      ready && this.point_openInfo()
    },

    /**
     * 监听页签切换
     */
    'point_param.tab'(tab) {
      if (tab === this.DICT.POINT_TAB[1][0]) this.point_startList(1)
    },
  },
}
</script>
